﻿#ifndef WRWORKTCPCOMMCONSTS
#define WRWORKTCPCOMMCONSTS

#include "../WRSoft-Utility/WRBasics.h"

namespace WRWorkTcpComm
{
    //默认处理超时时间。
    static const WR32s DefaultTimeount = 10000;

    //默认的数据缓存个数，如果所有缓存已经使用完，则丢弃数据。
    static const WR32s DefaultDataBuffers = 4;
    //默认每包数据的最大大小，如果超过此值，则按照此值对数据进行拆包。
    static const WR32s DefaultDataPackets = 1024 * 512;

    //最大接收大小。
    static const WR32s MaxRecvSize = 1024 * 1024 * 2;
    //最大数据大小。
    static const WR32s MaxDataSize = 1024 * 1024;

    //定义心跳间隔（毫秒）。
    static const WR32s PulseInterval = 1000;
    //定义尝试连接间隔（毫秒）。
    static const WR32s TryConnInterval = 10000;

    //定义会话超时时间(毫秒)。
    static const WR32s SessionTimeout = 3000;

    //帧头标识。
    static const WR32u FrameHeader = 0xAA00FF00;
    //帧尾标识。
    static const WR32u FrameTailor = 0xBB00FFFF;

    //帧版本标识。
    static const WR32u FrameVersion = 0x00000001;

    //打开连接标识。
    static const WR16u Start = 0x01;
    //关闭连接标识。
    static const WR16u Close = 0x02;
    //心跳指令标识。
    static const WR16u Pulse = 0xFFFF;

    //工作对象接口查询。
    static const WR16u WorkObjectIIQuery = 0x01;
    //工作对象接口处理。
    static const WR16u WorkObjectIITreat = 0x02;
    //工作对象工作事例。
    static const WR16u WorkObjectAffair = 0x03;

    //工作事例接口查询。
    static const WR16u WorkAffairIIQuery = 0x01;
    //工作事例接口处理。
    static const WR16u WorkAffairIITreat = 0x02;
    //工作事例对象释放。
    static const WR16u WorkAffairDispose = 0x03;

    //状态接口相关。
    static const WR16u StateSource = 0x01;
    //事件接口相关。
    static const WR16u EventSource = 0x02;
    //数据接口相关。
    static const WR16u DataSource = 0x03;
    //任务接口相关。
    static const WR16u TaskDealer = 0x04;
    //工作接口相关。
    static const WR16u WorkDealer = 0x05;

    //状态开始标识。
    //1、当客户端存在状态处理者时，通知服务端需要发送状态。
    static const WR16u StateStarted = 0x01;
    //状态处理标识。
    //1、服务端将状态发送到客户端。
    static const WR16u StateProcess = 0x02;
    //状态停止标识。
    //1、当客户端没有状态处理者时，通知服务端不再发送状态。
    static const WR16u StateStopped = 0x03;

    //事件开始标识。
    //1、当客户端存在事件处理者时，通知服务端需要发送事件。
    static const WR16u EventStarted = 0x01;
    //事件处理标识。
    //1、服务端将事件发送到客户端。
    static const WR16u EventProcess = 0x02;
    //事件停止标识。
    //1、当客户端没有事件处理者时，通知服务端不再发送事件。
    static const WR16u EventStopped = 0x03;

    //数据接口开始标识。
    //1、当客户端存在数据处理者时，通知服务端需要发送数据。
    //2、当服务器输出数据时，通知客户端。
    static const WR16u DataStarted = 0x01;
    //数据接口改变标识。
    //1、当服务端数据改变时，通知客户端。
    static const WR16u DataChanged = 0x02;
    //数据接口处理标识。
    //1、服务端将数据发送到客户端。
    static const WR16u DataProcess = 0x03;
    //数据接口停止标识。
    //1、当客户端没有数据处理者时，通知服务端不再发送数据。
    //2、当服务器端数据停止时，通知客户端。
    static const WR16u DataStopped = 0x04;
}

#endif // WRWORKTCPCOMMCONSTS

